🤓Как использовать концепты C++20 для создания надежного кода
Устали от непонятных ошибок шаблонов? Концепты спешат на помощь.
// ❌ Старый подход без концептов template<typename T> T max_value(const std::vector<T>& values) { // Ошибка будет обнаружена только при инстанциации шаблона return *std::max_element(values.begin(), values.end()); }
// ✅ Современный подход с концептами template<typename T> requires std::totally_ordered<T> T max_value(const std::vector<T>& values) { return *std::max_element(values.begin(), values.end()); }
// Еще короче с auto auto max_value(const std::vector<std::totally_ordered auto>& values) { return *std::max_element(values.begin(), values.end()); }
❗️Преимущества:
- Более понятные сообщения об ошибках - Документирование требований в коде - Перегрузка на основе свойств типов
Встроенные концепты: std::integral, std::floating_point, std::copyable, std::same_as и другие. Библиотека C/C++ разработчика #буст
🤓Как использовать концепты C++20 для создания надежного кода
Устали от непонятных ошибок шаблонов? Концепты спешат на помощь.
// ❌ Старый подход без концептов template<typename T> T max_value(const std::vector<T>& values) { // Ошибка будет обнаружена только при инстанциации шаблона return *std::max_element(values.begin(), values.end()); }
// ✅ Современный подход с концептами template<typename T> requires std::totally_ordered<T> T max_value(const std::vector<T>& values) { return *std::max_element(values.begin(), values.end()); }
// Еще короче с auto auto max_value(const std::vector<std::totally_ordered auto>& values) { return *std::max_element(values.begin(), values.end()); }
❗️Преимущества:
- Более понятные сообщения об ошибках - Документирование требований в коде - Перегрузка на основе свойств типов
Встроенные концепты: std::integral, std::floating_point, std::copyable, std::same_as и другие. Библиотека C/C++ разработчика #буст
BY Библиотека C/C++ разработчика | cpp, boost, qt
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Telegram today rolling out an update which brings with it several new features.The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. The update also adds interactive emoji. When you send one of the select animated emoji in chat, you can now tap on it to initiate a full screen animation. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations. This is then visible to you or anyone else who's also present in chat at the moment. The animations are also accompanied by vibrations.
If riding a bucking bronco is your idea of fun, you’re going to love what the stock market has in store. Consider this past week’s ride a preview.The week’s action didn’t look like much, if you didn’t know better. The Dow Jones Industrial Average rose 213.12 points or 0.6%, while the S&P 500 advanced 0.5%, and the Nasdaq Composite ended little changed.
Библиотека C C разработчика | cpp boost qt from tr